package com.pack.demo01;

public class Test03 {
    public static void main(String[] args) {
        System.out.println("其他的包装类测试");

        // Byte
        byte a = 11;
        Byte b = a; // 装箱
        System.out.println(b);
        Byte aByte = new Byte((byte) 20);
        byte a1 = aByte; // 拆箱
        String s = "123";
        byte c = Byte.parseByte(s); // 字符串转换
        System.out.println(c);
        System.out.println("============");
        /**
         * 使用包装类需要注意的地方
         * 1、包装类都重写了Object类中的toString()方法，以字符串的形式返回被包装的基本数据类型的值
         * 2、除了 Character 外，包装类都有valueOf(String s) 方法，可以根据String类型的参数创建
         *    包装类对象，但参数字符串 s 不能为 null，而且字符串必须是可以解析为相应基本类型的数据，
         *    否则运行时报错 。 java.lang.NumberFormatException 格式转换错误
         * 3、除了 Character 外，包装类都有 parseXXX(String s)的静态方法，将字符串转换为对应的
         *    基本类型的数据。参数 s 不能为 null，而且同样必须是可以解析为相应基本类型的数据，否则
         *    运行时报错。java.lang.NumberFormatException 格式转换错误
         */
        // 1
        Integer num = 1000;
        System.out.println(num.toString());
        // 2
        String num_str = "123abc";
        Integer num2 = Integer.valueOf(num_str); // 不合法
        Integer num3 = Integer.valueOf("456");   // 合法
        // 3
        String num_str1 = "3456abc";
        int num4 = Integer.parseInt(num_str1);  // 不合法
        int num5 = Integer.parseInt("789");  // 合法
    }
}
